//
//  UserModel.swift
//  LCYWeiBo
//
//  Created by 李长友 on 16/9/4.
//  Copyright © 2016年 app. All rights reserved.
//

import UIKit

class UserModel: NSObject, NSCoding {
    
    //设置成单例
    static let shareInstance = UserModel()
    
    override init() {
        super.init()
    }

    /// 授权accessToken
    var access_token : String?
    /// 过期时间
    var expires_in : NSTimeInterval = 0.0 {
        didSet {
            expires_date = NSDate(timeIntervalSinceNow: expires_in)
        }
    }
    /// 用户ID
    var uid : String?
    /// 过期日期
    var expires_date : NSDate?
    /// 用户UID
    var id : Int?
    /// 字符串型的用户UID
    var idstr : String?
    /// 用户昵称
    var screen_name	: String?
    /// 友好显示名称
    var name : String?
    /// 用户所在省级ID
    var province : Int?
    /// 用户所在城市ID
    var city : Int?
    /// 用户所在地
    var location : String?
    /// 用户个人描述
//    var description : String?
    /// 用户博客地址
    var url : String?
    /// 用户头像地址（中图），50×50像素
    var profile_image_url : String?
    /// 用户的微博统一URL地址
    var profile_url : String?
    /// 用户的个性化域名
    var domain : String?
    /// 用户的微号
    var weihao : String?
    /// 性别，m：男、f：女、n：未知
    var gender : String?
    /// 粉丝数
    var followers_count : Int?
    /// 关注数
    var friends_count : Int?
    /// 微博数
    var statuses_count : Int?
    /// 收藏数
    var favourites_count : Int?
    /// 用户创建（注册）时间
    var created_at : String?
    /// 暂未支持
    var following : Bool?
    /// 是否允许所有人给我发私信，true：是，false：否
    var allow_all_act_msg : Bool?
    /// 是否允许标识用户的地理位置，true：是，false：否
    var geo_enabled : Bool?
    /// 是否是微博认证用户，即加V用户，true：是，false：否
    var verified : Bool = false
    /// 微博认证用户类型
    var verified_type : Int = -1 {
        didSet {
            switch verified_type {
            case 0:
                verified_image = UIImage(named: "avatar_vip")
            case 2, 3, 4, 5, 6, 7:
                verified_image = UIImage(named: "avatar_enterprise_vip")
            case 220:
                verified_image = UIImage(named: "avatar_grassroot")
            default:
                verified_image = nil
            }
        }
    }
    /// 微博认证图标
    var verified_image : UIImage?
    /// 会员等级
    var mbrank : Int = 0 {
        didSet {
            switch mbrank {
            case 1, 2, 3, 4, 5, 6:
                vip_image = UIImage(named: "common_icon_membership_level\(mbrank)")
            default:
                vip_image = nil
            }
        }
    }
    /// 会员图标
    var vip_image : UIImage?
    /// 用户备注信息，只有在查询用户关系时才返回此字段
    var remark : String?
    /// 用户的最近一条微博信息字段 详细
    var status : StatusModel?
    /// 是否允许所有人对我的微博进行评论，true：是，false：否
    var allow_all_comment : Bool?
    /// 用户头像地址（大图），180×180像素
    var avatar_large : String?
    /// 用户头像地址（高清），高清头像原图
    var avatar_hd : String?
    /// 认证原因
    var verified_reason : String?
    /// 该用户是否关注当前登录用户，true：是，false：否
    var follow_me : Bool?
    /// 用户的在线状态，0：不在线、1：在线
    var online_status : Int?
    /// 用户的互粉数
    var bi_followers_count : Int?
    /// 用户当前的语言版本，zh-cn：简体中文，zh-tw：繁体中文，en：英语
    var lang : String?

    func setValueWithDictionary(dictionary: [String : AnyObject]) {
        
        setValuesForKeysWithDictionary(dictionary)
    }
    
    override func setValue(value: AnyObject?, forUndefinedKey key: String) {}
    
    //解档
    required init?(coder aDecoder: NSCoder) {
        
        access_token = aDecoder.decodeObjectForKey("access_token") as? String
        uid = aDecoder.decodeObjectForKey("uid") as? String
        expires_date = aDecoder.decodeObjectForKey("expires_date") as? NSDate
        screen_name = aDecoder.decodeObjectForKey("screen_name") as? String
        avatar_large = aDecoder.decodeObjectForKey("avatar_large") as? String
    }
    
    //归档
    func encodeWithCoder(aCoder: NSCoder) {
        
        aCoder.encodeObject(access_token, forKey: "access_token")
        aCoder.encodeObject(uid, forKey: "uid")
        aCoder.encodeObject(expires_date, forKey: "expires_date")
        aCoder.encodeObject(screen_name, forKey: "screen_name")
        aCoder.encodeObject(avatar_large, forKey: "avatar_large")
    }
    
    
}
